package com.example.springboot.ytest.ytest;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

public class ListTest {
	/**
	 * 集合运算 交集、差集、并集
	 * 
	 * @author: yeyi
	 * @date: 2019年3月6日
	 */
	public static void setOperation() {
		List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,4,5));
		List<Integer> list2 = Arrays.asList(3,4,5,6,7);
		list.retainAll(list2);// 交集
		System.out.println(list);
		
		list = new ArrayList<>(Arrays.asList(1,2,3,4,5));
		list.removeAll(list2);// 差集
		System.out.println(list);
		
		list = new ArrayList<>(Arrays.asList(1,2,3,4,5));
		list.addAll(list2);// 并集,但没去重
		System.out.println(list);
	}
	
	/**
	 * 循环删除
	 * 
	 * @author: yeyi
	 * @date: 2019年5月22日
	 */
	public static void delList() {
		List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,4,5));
		for(Iterator<Integer> it = list.iterator(); it.hasNext();) {
			Integer i = it.next();
			if(i%2==0) {
				it.remove();
//				list.remove(i); // 这样会报错，因为这个 remove 后 ArrayList 中删除项后面的内容全都前移了
			}
		}
		
		System.out.println(list);
	}
	
	public static void main(String[] args) {
//		setOperation();
		delList();
	}
}
